<?php
require_once 'Zend/Controller/Action.php';
/**
 * ヘルパー基底クラス
 * 
 * @package Apm
 * @subpackage Helper
 * @author hiasa-ryousuke@systemsoft.co.jp
 * @since 2010/10/20
 */
class Apm_Helper_Base extends Zend_Controller_Action_Helper_Abstract
{
    /**
     * テンプレートファイルへの絶対パス
     * 
     * @var string
     */
    protected $_template_file_path = null;
    
    /**
     * ブロックをhtml形式に書き出して返す
     * 
     * @param array $params テンプレートの変数に代入される値
     * @return html形式の文字列
     */
    public function getBlock($params)
    {
        //__log_debug(__FILE__, __LINE__, __METHOD__, '---------->>>');
        $block = $this->fetch($params);
        //__log_debug(__FILE__, __LINE__, __METHOD__, '----------<<<');
        return $block;
    }
    /**
     * テンプレートへの絶対パスを呼び出し元に合わせて整形
     * 
     * @param string $template_file_path テンプレートへの絶対パス
     * @return html
     */
    public function setTemplateFilePath($template_file_path)
    {
        //__log_debug(__FILE__, __LINE__, __METHOD__, '---------->>>');
        __log_debug(__FILE__, __LINE__, __METHOD__, "template_file_path = " . $template_file_path);
        $this->_template_file_path = $template_file_path;
        //__log_debug(__FILE__, __LINE__, __METHOD__, '----------<<<');
    }
    /**
     * テンプレートをhtml形式の文字列に書き出す
     * 
     * @param array $data テンプレートの変数に代入される値
     * @return html形式の文字列
     */
    protected function fetch($data)
    {
        //__log_debug(__FILE__, __LINE__, __METHOD__, '---------->>>');

        $smarty = __get_apm_smarty_object();
        $smarty->assign($data);
		//error_log($this->_template_file_path);
        //__log_debug(__FILE__, __LINE__, __METHOD__, '----------<<<');
        return $smarty->fetch($this->_template_file_path);
    }
}
?>
